package tree;

/**
 * 顺序存储通常只会考虑完全二叉树
 * left: 2 * n + 1
 * right: 2 * n + 2
 * father: (n-1) / 2
 *
 * @Auther Jun jie Yi
 * @Date 22:55 2021/7/16
 */
public class ArrBinaryTreeDemo {
    public static void main(String[] args) {
        
        int[] arr = {1, 2, 3, 4, 5, 6, 7};//顺序存储的树
        preOrder(0, arr);
    }

    //实现前序遍历
    public static void preOrder(int index, int[] arr) {
        if(arr == null || arr.length == 0) {
            System.out.println("数组为空不能进行前序遍历！");
        }
        //输出当前的数据
        System.out.println(arr[index]);
        //向左递归遍历
        if(2 * index + 1 < arr.length) {
            preOrder(2 * index + 1, arr);
        }
        //向有进行递归
        if(2 * index + 2 < arr.length) {
            preOrder(2 * index + 2, arr);
        }
    }
}
